百练_4003:十六进制转十进制

本文详细探讨了如何将十六进制数值转换为十进制,包括基本概念、转换方法及实例解析,帮助读者掌握这一数字系统转换技巧。
摘要由CSDN通过智能技术生成
描述
将十六进制数转换成十进制数
输入
第一行有一个整数T,表示共有T组数据
接下来T行,每一行为一个16进制无符号正整数,位数不超过8位,数中的a-f均为大写字母,数前没有多余的0
输出
输出共T行,每一行是一组数据的十进制表示,数字前不得有多余的0。
十进制数小于2^31
样例输入
4
A
F
FFFE
10001

样例输出

10
15
65534
65537


#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
	int i,n,sum,stra,b[10];
	char a[10];
	scanf("%d",&n);
	getchar();
	while(n--)
	{
		sum=0;
		gets(a);
	    stra=strlen(a);
	    for(i=0;i<stra;i++)
		{
		   if(a[i]>='0'&&a[i]<='9') b[i]=a[i]-'0';
		   if(a[i]=='A')             b[i]=10;
		   if(a[i]=='B')             b[i]=11;
		   if(a[i]=='C')             b[i]=12;
		   if(a[i]=='D')             b[i]=13;
		   if(a[i]=='E')             b[i]=14;
		   if(a[i]=='F')             b[i]=15;
		   sum+=(b[i])*pow(16,stra-i-1);
		}
    printf("%d\n",sum);
	}
	getchar();
	getchar();
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值